package com.neusoft.neuiotms.dcom.service.malfunction;

import java.util.List;
import java.util.Map;

import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import com.neusoft.bizcore.auth.common.bean.UserBean;

public interface MalfunctionService {

    /**
     * 统计已完成故障工单数量
     *
     * @param user
     * @return
     */
    int auditHandleMalfunctionNumByUser(UserBean user);

    int auditCoSponsorMalfunctionNumByUser(UserBean user);

    Page<Map<String, Object>> report(final Pageable pageable, Map<String, Object> params);

    List<Map<String, Object>> report(Map<String, Object> params);

    Workbook exportReport(Map<String, Object> params);

    XWPFDocument export(String worknum);

    /**
     * 已完成工单数量（带角色权限）<br />
     * 1, 一线工程师，统计自己负责厅局的工单 <br />
     * 2，一线组长，统计自己小组厅局的工单 <br />
     * 3，二线工程师，统计自己参与处理的工单 <br />
     * 4，二线组长，统计所有二线工程师参与的工单 <br />
     * 5，呼叫中心、主管、管理员统计所有的工单
     *
     * @param user
     * @return
     */
    long countOfFinishedMalfunction(UserBean user);
}
